#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
//数组要比字符串数开大
const int N=1e6+50;
int tree[N][28];
bool flag[N];
int tot;
int cnt[N];
int n,m;
char s[15];
void insert(char *s){
    int l=strlen(s);
    int root=0;
    for(int i=0;i<l;i++){
        int id=s[i]-'a';
        if(!tree[root][id]){
            tree[root][id]=++tot;
        }
        root=tree[root][id];
        cnt[root]++;
    }
    flag[root]=true;
}
int find(char *s){
    int l=strlen(s);
    int root=0;
    for(int i=0;i<l;i++){
        int id=s[i]-'a';
        if(!tree[root][id]){
            return 0;
        }
        root=tree[root][id];
    }
    return cnt[root];
}
int main(void){
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%s",s);
        insert(s);
    }
    scanf("%d",&m);
    for(int i=0;i<m;i++){
        scanf("%s",s);
        printf("%d\n",find(s));
    }
    return 0;
}